/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package gestionmagasins_sans_patterns.model;

import java.util.ArrayList;
import java.util.Date;

/**
 *
 * @author Nathan
 * 
 * Catalogue de la liste des clients enregistrer dans le système
 */
public class CatalogueClients 
{
    private final ArrayList<Client> clients;

    /*Constructeur*/
    public CatalogueClients() 
    {
        clients = new ArrayList<>();
    }

    /*Renvoie les client actif du système*/
    public ArrayList<Client> getClientsActif() 
    {
        ArrayList<Client> lstClientActif = new ArrayList<>();
        
        //Parcours les clients et vérifie s'il sont actif
        for(Client c : clients)
        {
            if (c.isActivate()) {
                lstClientActif.add(c);
            }
        }
        
        return lstClientActif;
    }
    
    /*Renvoie tout les client du système*/
    public ArrayList<Client> getClients() 
    {
        return clients;
    }
    
    /*Renvoie la liste de tout les client désactivé*/
    public ArrayList<Client> getClientsDesactiver() 
    {
        ArrayList<Client> lstClientDesactiverActif = new ArrayList<>();
        
        //Parcours les clients et vérifie s'il sont désactivé
        for(Client c : clients)
        {
            if (!c.isActivate()) {
                lstClientDesactiverActif.add(c);
            }
        }
        
        return lstClientDesactiverActif;
    }

    public void addClient(Client client) {
        clients.add(client);
    }        
    
    public void supprimerClient(Client client) 
    {
        clients.remove(client);
    }
    
    /*Créer un nouveau client et l'ajoute a la liste de client du système*/
    public void creerClient(String nom, String prenom, String adresse, Date dateNaissance, String telephone, String sexe)
    {
        Client c = new Client(nom, prenom, adresse, dateNaissance, telephone, sexe);
        
        addClient(c);
    }
    
    /*Renvoie la liste de client qui corresponde au nom/prénom envoyer*/
    public ArrayList<Client> rechercheClient(String Nom)
    {
        ArrayList<Client> resultclients = new ArrayList<Client>();
        for(Client c : clients)
        {
            if ((c.getPrenom() + " " + c.getNom()).toLowerCase().contains(Nom.toLowerCase())) 
            {
                resultclients.add(c);
            }
        }
        
        return resultclients;
    }
    
    /*Renvoie le client selon la position envoyé*/
    public Client getClient(int position)
    {
        return clients.get(position);
    }
    
}
